Apex Unit Testing হলো Apex কোডের নির্দিষ্ট অংশের সঠিকতা যাচাই করার একটি পদ্ধতি, যা নিশ্চিত করে যে কোড সঠিকভাবে কাজ করছে এবং ভবিষ্যতে পরিবর্তন হলেও ত্রুটি বা সমস্যা সৃষ্টি হবে না। Salesforce প্ল্যাটফর্মে Apex কোড ডেপ্লয় করার আগে ৭৫% কোড কাভারেজ থাকতে হয়, যা ইউনিট টেস্টিংয়ের মাধ্যমে নিশ্চিত করা যায়।
Apex Unit Test-এ টেস্ট ক্লাস তৈরি করা হয়, যা @isTest অ্যানোটেশন দিয়ে শুরু হয় এবং টেস্ট মেথডগুলো @isTest বা testMethod কিওয়ার্ড ব্যবহার করে ডিফাইন করা হয়।
@isTest
public class TestClassName {
@isTest
static void testMethod1() {
// টেস্টিং কোড
}
}
নিচে একটি উদাহরণ দেয়া হলো, যেখানে AccountManager
ক্লাসের updateAccountIndustry
মেথডের জন্য ইউনিট টেস্ট লেখা হয়েছে।
public class AccountManager {
public static void updateAccountIndustry(List<Id> accountIds) {
List<Account> accounts = [SELECT Id, Industry FROM Account WHERE Id IN :accountIds];
for (Account acc : accounts) {
acc.Industry = 'Technology';
}
update accounts;
}
}
@isTest
public class AccountManagerTest {
@isTest
static void testUpdateAccountIndustry() {
// টেস্ট ডেটা তৈরি
Account acc = new Account(Name = 'Test Account');
insert acc;
// মেথড কল এবং টেস্ট
List<Id> accountIds = new List<Id>{acc.Id};
AccountManager.updateAccountIndustry(accountIds);
// রেকর্ড রিফ্রেশ এবং যাচাই
Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
System.assertEquals('Technology', updatedAcc.Industry, 'Industry field should be updated to Technology');
}
}
AccountManager.updateAccountIndustry
মেথডকে টেস্ট করে, যেখানে Industry
ফিল্ডটি Technology
হিসেবে আপডেট হয়েছে কি না, তা যাচাই করা হয়েছে।Industry
ফিল্ডের ভ্যালু যাচাই করা হয়েছে, যা টেস্টিংয়ে গুরুত্বপূর্ণ।Test Data Creation: টেস্টিংয়ের জন্য নিজস্ব ডেটা তৈরি করতে হয় এবং এটি মূল ডেটাবেসে প্রভাব ফেলে না।
Assertions: System.assertEquals(), System.assertNotEquals(), এবং System.assert() মেথড ব্যবহার করে ফলাফল যাচাই করা হয়, যা টেস্টিংয়ের নির্ভুলতা নিশ্চিত করে।
Test Isolation: Salesforce Unit Test-এ টেস্ট ডেটা মূল ডেটাবেসে জমা হয় না এবং টেস্ট ক্লাসের ডেটা পুরোপুরি আলাদা থাকে।
Test.startTest() এবং Test.stopTest(): এটি ব্যবহার করে Async প্রসেস এবং Governor Limits ম্যানেজ করা হয়।
@isTest
public class AsyncTestExample {
@isTest
static void testFutureMethod() {
Test.startTest();
FutureExample.processFuture();
Test.stopTest();
// Assertions
System.assert(true, 'Future method executed successfully');
}
}
Apex Unit Testing হলো একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা Apex কোডের সঠিকতা যাচাই করে। Unit Testing এর মাধ্যমে কোডের গুণগত মান বজায় রাখা, ত্রুটি সনাক্তকরণ, এবং ডেপ্লয়মেন্ট রিকোয়ারমেন্ট পূরণ নিশ্চিত করা যায়। Assertions, Test.startTest() এবং Test.stopTest() সহ টেস্ট ক্লাসে বিভিন্ন টুল ব্যবহার করে Apex কোডের কার্যক্ষমতা এবং নির্ভরযোগ্যতা বৃদ্ধি করা যায়।
Apex Unit Test হলো Apex কোডের নির্দিষ্ট অংশের কার্যকারিতা যাচাই করার একটি পদ্ধতি, যা প্রোগ্রামের নির্দিষ্ট লজিক বা ফাংশনালিটি সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করে। Salesforce-এ Unit Test তৈরি করা বাধ্যতামূলক এবং এটি প্রোডাকশন ডিপ্লয়মেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ।
Apex Unit Test-এর মাধ্যমে কোডের নির্দিষ্ট অংশে কৃত্রিম ইনপুট দিয়ে আউটপুট যাচাই করা হয় এবং নিশ্চিত করা হয় যে কোডটি সঠিকভাবে কাজ করছে। এতে Test Class এবং Test Method ব্যবহার করা হয়, যা @isTest
অ্যানোটেশন দিয়ে চিহ্নিত করা হয়।
বাগ সনাক্তকরণ ও সমাধান: Unit Test চালানোর মাধ্যমে কোডে কোনো বাগ বা ত্রুটি থাকলে তা দ্রুত সনাক্ত করা যায় এবং সমাধান করা সহজ হয়।
কোডের সঠিকতা নিশ্চিতকরণ: Unit Test কোডের প্রত্যাশিত আউটপুট যাচাই করে এবং নিশ্চিত করে যে কোডটি সঠিকভাবে কাজ করছে।
ডিপ্লয়মেন্টের পূর্ব প্রস্তুতি: Salesforce প্রোডাকশন ডিপ্লয়মেন্টের জন্য কমপক্ষে ৭৫% কোড কভারেজ থাকা বাধ্যতামূলক, যা Unit Test-এর মাধ্যমে অর্জন করা যায়।
পরিবর্তনের সময় কোডের স্থায়িত্ব: যখন কোডে কোনো পরিবর্তন করা হয় বা নতুন ফিচার যোগ করা হয়, তখন Unit Test চালিয়ে নিশ্চিত করা যায় যে কোড পরিবর্তনের ফলে কোনো বিদ্যমান কার্যক্ষমতায় সমস্যা হচ্ছে না।
গভর্নর লিমিট টেস্টিং: Salesforce গভর্নর লিমিট মেনে চলতে Unit Test গুরুত্বপূর্ণ, কারণ এটি লিমিটের মধ্যে কোড সঠিকভাবে কাজ করছে কিনা যাচাই করে।
Apex Unit Test ক্লাস এবং মেথডে সাধারণত @isTest
অ্যানোটেশন ব্যবহার করা হয়। Unit Test মেথডে টেস্ট ডেটা তৈরি, পরীক্ষিত মেথড কল করা এবং System.assertEquals()
ব্যবহার করে ফলাফল যাচাই করা হয়।
@isTest
public class AccountHandlerTest {
// Test Method
@isTest
static void testUpdateAccountIndustry() {
// টেস্ট ডেটা তৈরি
Account acc = new Account(Name = 'Tech Solutions', Industry = 'Healthcare');
insert acc;
// পরীক্ষিত মেথড কল
AccountHandler.updateAccountIndustry(acc.Id, 'Technology');
// প্রত্যাশিত ফলাফল যাচাই
Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
System.assertEquals('Technology', updatedAcc.Industry, 'Industry field did not update correctly');
}
}
AccountHandler.updateAccountIndustry()
মেথডের কার্যকারিতা যাচাই করা হয়েছে।Test Class এবং Method: Unit Test ক্লাস এবং মেথডকে @isTest
অ্যানোটেশন দিয়ে চিহ্নিত করতে হয়।
Test Data Creation: Unit Test চালানোর জন্য নতুন ডেটা তৈরি করা হয়, যা মূল ডেটাবেসে কোনো পরিবর্তন আনে না। Salesforce-এ Unit Test চলাকালীন Test Data তৈরি করতে SeeAllData=false
ব্যবহার করা হয়।
System.assert() Methods: System.assertEquals()
বা System.assertNotEquals()
ব্যবহার করে প্রত্যাশিত এবং প্রাপ্ত আউটপুট তুলনা করা হয়।
Test.startTest() এবং Test.stopTest(): Unit Test-এর ক্ষেত্রে গভর্নর লিমিট রিসেট এবং Async অপারেশন চালানোর জন্য Test.startTest()
এবং Test.stopTest()
ব্যবহৃত হয়।
নিচের উদাহরণে ContactHandler
ক্লাসে updateContactEmail
মেথড টেস্ট করা হয়েছে, যা কন্টাক্টের ইমেইল আপডেট করে।
@isTest
public class ContactHandlerTest {
@isTest
static void testUpdateContactEmail() {
// Test Data তৈরি
Contact con = new Contact(FirstName = 'John', LastName = 'Doe', Email = 'john.doe@example.com');
insert con;
// মেথড টেস্ট করা হচ্ছে
ContactHandler.updateContactEmail(con.Id, 'john.new@example.com');
// আউটপুট যাচাই করা হচ্ছে
Contact updatedCon = [SELECT Email FROM Contact WHERE Id = :con.Id];
System.assertEquals('john.new@example.com', updatedCon.Email, 'Email did not update correctly');
}
}
ContactHandler.updateContactEmail()
মেথডের কার্যক্ষমতা যাচাই করা হয়েছে।SeeAllData=false: Unit Test-এর ক্ষেত্রে SeeAllData=false
ব্যবহার করে নিশ্চিত করা উচিত যে, Test Data মূল ডেটাবেসে কোনো প্রভাব ফেলছে না।
Test Coverage নিশ্চিত করুন: Production ডিপ্লয়মেন্টের জন্য কমপক্ষে ৭৫% কোড কভারেজ থাকা বাধ্যতামূলক। তাই Unit Test তৈরি করে সর্বোচ্চ কোড কভারেজ নিশ্চিত করা উচিত।
System.assert ব্যবহার করুন: প্রত্যাশিত এবং প্রাপ্ত ফলাফল যাচাই করতে System.assert()
ব্যবহার করুন, যাতে Unit Test সঠিক আউটপুট যাচাই করতে পারে।
Exception Handling টেস্ট করুন: Exception Handling-এর ক্ষেত্রে নিশ্চিত হন যে Unit Test এর মাধ্যমে Exception সঠিকভাবে হ্যান্ডেল হচ্ছে।
গভর্নর লিমিটের মধ্যে টেস্টিং: গভর্নর লিমিটের সীমার মধ্যে কোড সঠিকভাবে কাজ করছে কিনা যাচাই করতে Test.startTest() এবং Test.stopTest() ব্যবহার করুন।
Apex Unit Test ব্যবহার করে উন্নয়নকারীরা Salesforce অ্যাপ্লিকেশনকে আরও কার্যকর ও স্থিতিশীল করতে পারেন এবং Production ডিপ্লয়মেন্টের সময় নিরাপত্তা ও নির্ভরযোগ্যতা নিশ্চিত করতে পারেন।
Test Classes এবং Test Methods Apex কোডের কার্যকারিতা যাচাই করতে ব্যবহৃত হয়। Salesforce-এ ইউনিট টেস্টিংয়ের জন্য Test Classes এবং Test Methods তৈরি করা হয়, যা কোডের সঠিকতা এবং গভর্নর লিমিটের মধ্যে থেকে কোডের কার্যকারিতা নিশ্চিত করে।
Test Class তৈরি করতে @isTest অ্যানোটেশন ব্যবহার করা হয়, যা Salesforce-কে নির্দেশ করে এটি একটি টেস্ট ক্লাস। Test Class সাধারণত public
বা global
হিসাবে ডিফাইন করা হয়।
@isTest
public class TestClassName {
// Test methods go here
}
public
বা global
হিসেবে ডিফাইন করা হয়।Test Methods টেস্ট ক্লাসের মধ্যে ডিফাইন করা হয় এবং @isTest বা testMethod ব্যবহার করা হয়। Test Method-এ Assertions ব্যবহার করে কাঙ্খিত ফলাফল যাচাই করা হয়।
@isTest
public class TestClassName {
@isTest
static void testMethod1() {
// টেস্ট কোড এবং Assertions
}
}
Test Methods সাধারণত টেস্টিংয়ের জন্য নিজস্ব ডেটা তৈরি করে, যা Production ডেটা ব্যবহার এড়াতে সাহায্য করে। Apex টেস্ট ক্লাসে তৈরি ডেটা মূল ডেটাবেসে জমা হয় না এবং তা সম্পূর্ণ আলাদা থাকে।
@isTest
public class AccountTest {
@isTest
static void testAccountCreation() {
// টেস্ট ডেটা তৈরি
Account acc = new Account(Name = 'Test Account');
insert acc;
// Assertions
Account fetchedAcc = [SELECT Name FROM Account WHERE Id = :acc.Id];
System.assertEquals('Test Account', fetchedAcc.Name, 'Account name should match');
}
}
Account
রেকর্ড তৈরি করা হয়েছে, যা Test Database-এ সংরক্ষিত হয়।Test.startTest() এবং Test.stopTest() Salesforce-এ গভর্নর লিমিট রিফ্রেশ করে এবং Asynchronous প্রসেস ট্রিগার করার জন্য ব্যবহৃত হয়।
@isTest
public class AsyncTestExample {
@isTest
static void testFutureMethod() {
Test.startTest();
FutureExample.processFuture(); // Future Method কল
Test.stopTest();
// Assertions
System.assert(true, 'Future method executed successfully');
}
}
Assertions টেস্ট রেজাল্ট যাচাই করতে ব্যবহৃত হয়, যা System.assertEquals()
, System.assertNotEquals()
এবং System.assert()
মেথড ব্যবহার করে ফলাফল যাচাই করে। Assertions কোডের প্রত্যাশিত আউটপুট এবং আসল আউটপুটের মধ্যে মিল চেক করে।
@isTest
public class AccountTest {
@isTest
static void testAccountName() {
Account acc = new Account(Name = 'Sample Account');
insert acc;
Account fetchedAcc = [SELECT Name FROM Account WHERE Id = :acc.Id];
System.assertEquals('Sample Account', fetchedAcc.Name, 'The account name should match');
}
}
নিচে একটি Test Class এবং Test Method-এর পূর্ণ উদাহরণ দেয়া হলো:
public class AccountManager {
public static void updateAccountIndustry(List<Id> accountIds) {
List<Account> accounts = [SELECT Id, Industry FROM Account WHERE Id IN :accountIds];
for (Account acc : accounts) {
acc.Industry = 'Technology';
}
update accounts;
}
}
@isTest
public class AccountManagerTest {
@isTest
static void testUpdateAccountIndustry() {
// Test data creation
Account acc = new Account(Name = 'Test Account');
insert acc;
// Method call and testing
List<Id> accountIds = new List<Id>{acc.Id};
AccountManager.updateAccountIndustry(accountIds);
// Record refresh and validation
Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
System.assertEquals('Technology', updatedAcc.Industry, 'Industry field should be updated to Technology');
}
}
Test Classes এবং Test Methods Apex ইউনিট টেস্টিংয়ের প্রধান উপাদান, যা কোডের সঠিকতা যাচাই করে এবং গভর্নর লিমিটের মধ্যে কোডের কার্যকারিতা নিশ্চিত করে। Assertions, Test.startTest(), এবং Test.stopTest() সহ বিভিন্ন টুল ব্যবহার করে Test Classes এবং Test Methods উন্নত এবং কার্যকরী করা যায়, যা Salesforce ডেভেলপমেন্টে একটি নির্ভুল এবং স্থিতিশীল পরিবেশ নিশ্চিত করে।
Test Data Creation এবং @isTest Annotation Salesforce-এর Apex Unit Testing-এ গুরুত্বপূর্ণ ভূমিকা পালন করে। Test Data Creation মূল ডেটাবেসে কোনো পরিবর্তন না করে শুধুমাত্র টেস্টিংয়ের জন্য প্রয়োজনীয় ডেটা তৈরি করে, আর @isTest Annotation ব্যবহার করে টেস্ট ক্লাস এবং মেথড চিহ্নিত করা হয়।
Salesforce প্ল্যাটফর্মে Unit Test চলাকালীন Test Data Creation করতে হয়, যা মূল ডেটাবেসের উপর নির্ভর না করে কেবল টেস্টিংয়ের জন্য ডেটা তৈরি করে। Test Data তৈরি করার সময় SeeAllData=false ব্যবহার করা হয়, যা নিশ্চিত করে যে টেস্ট চলাকালীন মূল ডেটাবেস ডেটা অ্যাক্সেস করা হবে না। Unit Test-এর সঠিকতা ও স্বাধীনতা বজায় রাখতে এটি অত্যন্ত গুরুত্বপূর্ণ।
নিচের উদাহরণে Account
এবং Contact
রেকর্ড তৈরি করে টেস্ট ডেটা প্রস্তুত করা হয়েছে।
@isTest
public class TestDataExample {
public static Account createTestAccount() {
Account acc = new Account(Name = 'Test Account', Industry = 'Technology');
insert acc;
return acc;
}
public static Contact createTestContact(Id accountId) {
Contact con = new Contact(FirstName = 'John', LastName = 'Doe', Email = 'john.doe@example.com', AccountId = accountId);
insert con;
return con;
}
}
Account
রেকর্ড তৈরি করে এবং ডেটাবেসে ইনসার্ট করে।Account
আইডি ব্যবহার করে একটি Contact
রেকর্ড তৈরি করে এবং ডেটাবেসে ইনসার্ট করে।এভাবে TestDataExample
ক্লাস ব্যবহার করে টেস্টের জন্য বিভিন্ন ক্লাসে টেস্ট ডেটা তৈরি ও পুনঃব্যবহার করা যায়।
@isTest Annotation হলো Apex-এ টেস্ট ক্লাস ও মেথড চিহ্নিত করার জন্য ব্যবহৃত একটি অ্যানোটেশন। @isTest অ্যানোটেশন ব্যবহার করে টেস্টিং-এর জন্য নির্দিষ্ট মেথড বা ক্লাস চিহ্নিত করা যায়, যা প্রোডাকশন কোড থেকে আলাদা থাকে।
@isTest
অ্যানোটেশন টেস্ট ক্লাসের শুরুতে ব্যবহার করে পুরো ক্লাসকে টেস্ট ক্লাস হিসেবে চিহ্নিত করা যায়।@isTest
অ্যানোটেশন টেস্ট মেথডের শুরুতে ব্যবহার করা হয়, যাতে এই মেথডটি শুধুমাত্র টেস্টের জন্য চালানো হয়।@isTest
অ্যানোটেশনের সাথে SeeAllData=false
ব্যবহার করলে টেস্ট মেথডে মূল ডেটাবেসে থাকা কোনো ডেটা অ্যাক্সেস করা যাবে না, যা টেস্ট ডেটা নিরাপদ রাখে।@isTest(SeeAllData=false)
public class AccountHandlerTest {
// Test Method
@isTest
static void testUpdateAccountIndustry() {
// Test Data তৈরি
Account acc = new Account(Name = 'Tech Solutions', Industry = 'Healthcare');
insert acc;
// পরীক্ষিত মেথড কল
AccountHandler.updateAccountIndustry(acc.Id, 'Technology');
// আউটপুট যাচাই
Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
System.assertEquals('Technology', updatedAcc.Industry, 'Industry field did not update correctly');
}
}
testUpdateAccountIndustry
মেথডে @isTest
অ্যানোটেশন ব্যবহার করা হয়েছে, যা মেথডটিকে টেস্ট মেথড হিসেবে চিহ্নিত করে।SeeAllData=false ব্যবহার করে নিশ্চিত করা হয় যে টেস্ট মেথড শুধুমাত্র টেস্ট ডেটা ব্যবহার করবে এবং মূল ডেটাবেস ডেটা অ্যাক্সেস করবে না। এটি টেস্ট ডেটার নির্ভরযোগ্যতা এবং নিরাপত্তা নিশ্চিত করে।
SeeAllData=false
ব্যবহার করুন।System.assert()
ব্যবহার করে আউটপুট যাচাই করুন।Apex Unit Testing-এ Test Data Creation এবং @isTest Annotation ব্যবহার করে উন্নত, নিরাপদ, এবং নির্ভরযোগ্য টেস্টিং নিশ্চিত করা যায়।
Code Coverage হলো Salesforce-এ Apex কোডের টেস্টিংয়ের একটি পরিমাপ, যা বোঝায় যে টেস্টিংয়ের মাধ্যমে মোট কোডের কত শতাংশ পরীক্ষিত হয়েছে। Salesforce-এ ডেপ্লয়মেন্টের জন্য ৭৫% কোড কাভারেজ আবশ্যক, কিন্তু সাধারণত সর্বোচ্চ কাভারেজ নিশ্চিত করা বাঞ্ছনীয়। কোড কাভারেজ বাড়ানোর মাধ্যমে কোডের নির্ভুলতা এবং কার্যকারিতা নিশ্চিত করা যায়।
Test Data Creation: Production ডেটার উপর নির্ভর না করে Test Method-এ টেস্ট ডেটা তৈরি করা উচিত। এটি নির্ভরযোগ্য টেস্টিংয়ের জন্য গুরুত্বপূর্ণ এবং Production ডেটাবেসে প্রভাব ফেলবে না।
@isTest
public class AccountTest {
@isTest
static void testAccountCreation() {
Account acc = new Account(Name = 'Test Account');
insert acc;
System.assertEquals('Test Account', [SELECT Name FROM Account WHERE Id = :acc.Id].Name);
}
}
Assertions ব্যবহার করুন: System.assert(), System.assertEquals(), এবং System.assertNotEquals() ব্যবহার করে প্রত্যাশিত আউটপুট যাচাই করা উচিত, যা টেস্টিংয়ের নির্ভুলতা নিশ্চিত করে।
System.assertEquals('ExpectedValue', actualValue, 'Message if test fails');
Test.startTest() এবং Test.stopTest() ব্যবহার করুন: Async প্রসেস এবং গভর্নর লিমিট রিফ্রেশের জন্য Test.startTest() এবং Test.stopTest() ব্যবহার করা উচিত।
Test.startTest();
// Async call or code that may affect governor limits
Test.stopTest();
Exception Handling টেস্ট করুন: কোডে Exception Handling সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে টেস্ট মেথডে Exception Handling যোগ করুন।
try {
// Code that may throw exception
System.assert(false, 'Exception expected but not thrown');
} catch (Exception e) {
System.assert(true, 'Exception was thrown as expected');
}
Edge Cases টেস্ট করুন: সাধারণ পরিস্থিতি ছাড়াও এক্সট্রিম বা এজ কেসগুলোও টেস্ট করুন, যেমন নাল ইনপুট, শূন্য মান, বা বড় ডেটাসেট।
List<Account> emptyList = new List<Account>();
System.assertEquals(0, emptyList.size(), 'List should be empty');
Mocking ব্যবহার করুন (HTTP Callouts এর ক্ষেত্রে): External Callouts বা API কলের ক্ষেত্রে Mocking ব্যবহার করা উচিত, যাতে টেস্টিং চলাকালীন কলআউট কার্যকর না হয়।
Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator());
@isTest
global class MockHttpResponseGenerator implements HttpCalloutMock {
global HttpResponse respond(HttpRequest req) {
HttpResponse res = new HttpResponse();
res.setStatusCode(200);
res.setBody('{"name": "Test"}');
return res;
}
}
Bulk Testing: Bulk DML অপারেশন বা Bulk SOQL Query চলাকালীন কোডের পারফরম্যান্স যাচাই করুন। এটি নিশ্চিত করবে যে কোড বড় ডেটাসেট পরিচালনা করতে সক্ষম কিনা।
List<Account> accList = new List<Account>();
for (Integer i = 0; i < 200; i++) {
accList.add(new Account(Name = 'Test Account ' + i));
}
insert accList;
Utility Methods টেস্ট করুন: কোডের প্রতিটি ছোট ফাংশন বা ইউটিলিটি মেথডের জন্য আলাদা টেস্ট মেথড লিখুন, যাতে সকল লজিক কভার হয়।
@isTest
static void testUtilityMethod() {
Integer result = UtilityClass.add(2, 3);
System.assertEquals(5, result, 'Utility method should return correct sum');
}
Avoid Hardcoded IDs: টেস্ট মেথডে হার্ডকোডেড আইডি এড়িয়ে চলুন, কারণ এটি পরিবেশভেদে পরিবর্তিত হতে পারে। পরিবর্তে, টেস্ট ডেটা তৈরি করে তার আইডি ব্যবহার করুন।
Run Tests Regularly: Deployment এর সময় বা কোডে বড় পরিবর্তন আসলে সব টেস্ট ক্লাস এবং মেথড চালান, যাতে কোড পরিবর্তনে কোনো সমস্যা না হয়।
public class AccountManager {
public static void updateAccountIndustry(List<Id> accountIds) {
List<Account> accounts = [SELECT Id, Industry FROM Account WHERE Id IN :accountIds];
for (Account acc : accounts) {
acc.Industry = 'Technology';
}
update accounts;
}
}
@isTest
public class AccountManagerTest {
@isTest
static void testUpdateAccountIndustry() {
Account acc = new Account(Name = 'Test Account');
insert acc;
List<Id> accountIds = new List<Id>{acc.Id};
AccountManager.updateAccountIndustry(accountIds);
Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
System.assertEquals('Technology', updatedAcc.Industry, 'Industry field should be updated to Technology');
}
}
AccountManager
ক্লাসের সমস্ত লজিক টেস্ট হয়েছে, যা সর্বাধিক কাভারেজ নিশ্চিত করেছে।Code Coverage Apex টেস্টিংয়ের একটি গুরুত্বপূর্ণ অংশ, যা Salesforce ডেপ্লয়মেন্টের জন্য প্রয়োজনীয়। সর্বাধিক কোড কাভারেজ নিশ্চিত করতে Assertions, Bulk Testing, Edge Cases, এবং Utility Methods টেস্টিং অন্তর্ভুক্ত করা উচিত। সঠিক কোড কাভারেজ নিশ্চিত করে Salesforce প্ল্যাটফর্মে একটি কার্যকরী এবং নির্ভুল ডেপ্লয়মেন্ট পরিবেশ তৈরি করা যায়।
Read more